package conf

import (
	"fmt"
	"sync"
)

var (
	ConfigLock sync.RWMutex //读写锁
	MapBag = make(map[int]ConfigBag) 	//背包 	// B_背包.xlsx 
	MapDrop = make(map[int]ConfigDrop) 	//掉落 	// D_掉落.xlsx 
	MapExp = make(map[int]ConfigExp) 	//经验 	// T_通用.xlsx 
	MapForge = make(map[int]ConfigForge) 	//铸造 	// T_通用.xlsx 
	MapGlobal = make(map[int]ConfigGlobal) 	//E全局常数 	// Q_全局常数.xlsx 
	MapHero = make(map[int]ConfigHero) 	//英雄 	// Y_英雄.xlsx 
	MapLanguage = make(map[string]ConfigLanguage) 	//文本 	// B_本地化配置表.xlsx 
	MapMailText = make(map[int]ConfigMailText) 	//E邮件文本 	// B_Lang邮件.xlsx 
	MapProtocolResult = make(map[int]ConfigProtocolResult) 	//E错误码 	// B_Lang返回码.xlsx 
	MapTest = make(map[int]ConfigTest) 	//测试公共类 	// Z_测试类.xlsx 
)

func InitMapAll() bool {
	fmt.Println("读取配置开始......")

	ConfigLock.Lock()
	defer ConfigLock.Unlock()

	if err := ReadJson("ConfigBag", &MapBag); err != nil {
		fmt.Println("Read ConfigBag 背包  B_背包.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigDrop", &MapDrop); err != nil {
		fmt.Println("Read ConfigDrop 掉落  D_掉落.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigExp", &MapExp); err != nil {
		fmt.Println("Read ConfigExp 经验  T_通用.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigForge", &MapForge); err != nil {
		fmt.Println("Read ConfigForge 铸造  T_通用.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigGlobal", &MapGlobal); err != nil {
		fmt.Println("Read ConfigGlobal E全局常数  Q_全局常数.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigHero", &MapHero); err != nil {
		fmt.Println("Read ConfigHero 英雄  Y_英雄.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigLanguage", &MapLanguage); err != nil {
		fmt.Println("Read ConfigLanguage 文本  B_本地化配置表.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigMailText", &MapMailText); err != nil {
		fmt.Println("Read ConfigMailText E邮件文本  B_Lang邮件.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigProtocolResult", &MapProtocolResult); err != nil {
		fmt.Println("Read ConfigProtocolResult E错误码  B_Lang返回码.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigTest", &MapTest); err != nil {
		fmt.Println("Read ConfigTest 测试公共类  Z_测试类.xlsx  err", err)
		return false
	}

	fmt.Println("t读取配置结束......")
	return true
}
